package editorarquivobmg.model;

import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;

public class INF1 implements ISalvamento {

    private byte[] data = null;
    private int size = 0;
    private int numeroPonteiros = 0;
    private int tamanhoPonteiro = 0;
    private ArrayList<Ponteiro> ponteiros = null;

    public INF1(byte[] data, int size, int numeroPonteiros, int tamanhoPonteiro, ArrayList<Ponteiro> ponteiros) {
        this.size = size;
        this.numeroPonteiros = numeroPonteiros;
        this.tamanhoPonteiro = tamanhoPonteiro;
        this.data = data;
        this.ponteiros = ponteiros;
    }

    public int getTamanhoPonteiro() {
        return tamanhoPonteiro;
    }

    public int getNumeroPonteiros() {
        return numeroPonteiros;
    }

    public void modificarEndereco(int enderecoTexto, int pos) {
        ponteiros.get(pos).setEnderecoTexto(enderecoTexto);
    }

    public byte[] getDataPonteiro(int pos) {
        return ponteiros.get(pos).getData();
    }

    public void setDataPonteiro(byte[] data, int pos) {
        ponteiros.get(pos).setData(data);
    }

    public int getEnderecoTextoPonteiro(int pos) {
        return ponteiros.get(pos).getEnderecoTexto();
    }

    public boolean ponteiroIsValido(int pos) {
        return ponteiros.get(pos).isValido();
    }

    @Override
    public void salvar(File file) throws Exception {
        FileOutputStream in = new FileOutputStream(file, true);
        in.write(data);
        in.close();
        for (int i = 0; i < ponteiros.size(); i++) {
            ponteiros.get(i).salvar(file);
        }
    }
}
